<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::structured_light::GrayCodePattern Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d7/d58/namespacecv_1_1structured__light.html">structured_light</a></li><li class="navelem"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html">GrayCodePattern</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
<a href="../../d8/da5/classcv_1_1structured__light_1_1GrayCodePattern-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::structured_light::GrayCodePattern Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="../../d1/d90/group__structured__light.html">Structured Light API</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Class implementing the Gray-code pattern, based on <a class="el" href="../../d0/de3/citelist.html#CITEREF_UNDERWORLD">[109]</a>.  
 <a href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#details">More...</a></p>
<p><code>#include &lt;opencv2/structured_light/graycodepattern.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cv::structured_light::GrayCodePattern:</div>
<div class="dyncontent">
 <div class="center">
  <img alt="" src="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.png" usemap="#cv::structured_5Flight::GrayCodePattern_map"/>
  <map id="cv::structured_5Flight::GrayCodePattern_map" name="cv::structured_5Flight::GrayCodePattern_map">
<area alt="cv::structured_light::StructuredLightPattern" coords="0,56,251,80" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html" shape="rect" title="Abstract base class for generating and decoding structured light patterns. "/>
<area alt="cv::Algorithm" coords="0,0,251,24" href="../../d3/d46/classcv_1_1Algorithm.html" shape="rect" title="This is a base class for all more or less complex algorithms in OpenCV. "/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html">Params</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Parameters of <a class="el" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html" title="Abstract base class for generating and decoding structured light patterns. ">StructuredLightPattern</a> constructor.  <a href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae67bd95cfab3a78721d978f6ba0fd3f3"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#ae67bd95cfab3a78721d978f6ba0fd3f3">getImagesForShadowMasks</a> (<a class="el" href="../../dc/d84/group__core__basic.html#gaf77c9a14ef956c50c1efd4547f444e63">InputOutputArray</a> blackImage, <a class="el" href="../../dc/d84/group__core__basic.html#gaf77c9a14ef956c50c1efd4547f444e63">InputOutputArray</a> whiteImage) const =0</td></tr>
<tr class="memdesc:ae67bd95cfab3a78721d978f6ba0fd3f3"><td class="mdescLeft"> </td><td class="mdescRight">Generates the all-black and all-white images needed for shadowMasks computation.  <a href="#ae67bd95cfab3a78721d978f6ba0fd3f3">More...</a><br/></td></tr>
<tr class="separator:ae67bd95cfab3a78721d978f6ba0fd3f3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a86f48b2b4d4395f4064481ec3181da45"><td align="right" class="memItemLeft" valign="top">virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#a86f48b2b4d4395f4064481ec3181da45">getNumberOfPatternImages</a> () const =0</td></tr>
<tr class="memdesc:a86f48b2b4d4395f4064481ec3181da45"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of pattern images needed for the graycode pattern.  <a href="#a86f48b2b4d4395f4064481ec3181da45">More...</a><br/></td></tr>
<tr class="separator:a86f48b2b4d4395f4064481ec3181da45"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a098c1e42780d2212476c61d1e803bb06"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#a098c1e42780d2212476c61d1e803bb06">getProjPixel</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga606feabe3b50ab6838f1ba89727aa07a">InputArrayOfArrays</a> patternImages, int x, int y, <a class="el" href="../../dc/d84/group__core__basic.html#ga1e83eafb2d26b3c93f09e8338bcab192">Point</a> &amp;projPix) const =0</td></tr>
<tr class="memdesc:a098c1e42780d2212476c61d1e803bb06"><td class="mdescLeft"> </td><td class="mdescRight">For a (x,y) pixel of a camera returns the corresponding projector pixel.  <a href="#a098c1e42780d2212476c61d1e803bb06">More...</a><br/></td></tr>
<tr class="separator:a098c1e42780d2212476c61d1e803bb06"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3607cba801a696881df31bbd6c59c4fd"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#a3607cba801a696881df31bbd6c59c4fd">setBlackThreshold</a> (size_t value)=0</td></tr>
<tr class="memdesc:a3607cba801a696881df31bbd6c59c4fd"><td class="mdescLeft"> </td><td class="mdescRight">Sets the value for black threshold, needed for decoding (shadowsmasks computation).  <a href="#a3607cba801a696881df31bbd6c59c4fd">More...</a><br/></td></tr>
<tr class="separator:a3607cba801a696881df31bbd6c59c4fd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aeaf08cd487c5d2894eda4ebd1eea6322"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#aeaf08cd487c5d2894eda4ebd1eea6322">setWhiteThreshold</a> (size_t value)=0</td></tr>
<tr class="memdesc:aeaf08cd487c5d2894eda4ebd1eea6322"><td class="mdescLeft"> </td><td class="mdescRight">Sets the value for white threshold, needed for decoding.  <a href="#aeaf08cd487c5d2894eda4ebd1eea6322">More...</a><br/></td></tr>
<tr class="separator:aeaf08cd487c5d2894eda4ebd1eea6322"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern')"><img alt="-" src="../../closed.png"/> Public Member Functions inherited from <a class="el" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html">cv::structured_light::StructuredLightPattern</a></td></tr>
<tr class="memitem:a4cc409edf8a330eeccba6737d391da34 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html#a4cc409edf8a330eeccba6737d391da34">decode</a> (const std::vector&lt; std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &gt; &amp;patternImages, <a class="el" href="../../dc/d84/group__core__basic.html#gaad17fda1d0f0d1ee069aebb1df2913c0">OutputArray</a> disparityMap, <a class="el" href="../../dc/d84/group__core__basic.html#ga606feabe3b50ab6838f1ba89727aa07a">InputArrayOfArrays</a> blackImages=<a class="el" href="../../dc/d84/group__core__basic.html#gad9287b23bba2fed753b36ef561ae7346">noArray</a>(), <a class="el" href="../../dc/d84/group__core__basic.html#ga606feabe3b50ab6838f1ba89727aa07a">InputArrayOfArrays</a> whiteImages=<a class="el" href="../../dc/d84/group__core__basic.html#gad9287b23bba2fed753b36ef561ae7346">noArray</a>(), int flags=<a class="el" href="../../d1/d90/group__structured__light.html#ggafaa062a39adfeb3836b8730fda1a6b89a98f0a8c890dded38d226722bcdd5795c">DECODE_3D_UNDERWORLD</a>) const =0</td></tr>
<tr class="memdesc:a4cc409edf8a330eeccba6737d391da34 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td class="mdescLeft"> </td><td class="mdescRight">Decodes the structured light pattern, generating a disparity map.  <a href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html#a4cc409edf8a330eeccba6737d391da34">More...</a><br/></td></tr>
<tr class="separator:a4cc409edf8a330eeccba6737d391da34 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa7170486475603d4756f2c23990b7668 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html#aa7170486475603d4756f2c23990b7668">generate</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga889a09549b98223016170d9b613715de">OutputArrayOfArrays</a> patternImages)=0</td></tr>
<tr class="memdesc:aa7170486475603d4756f2c23990b7668 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td class="mdescLeft"> </td><td class="mdescRight">Generates the structured light pattern to project.  <a href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html#aa7170486475603d4756f2c23990b7668">More...</a><br/></td></tr>
<tr class="separator:aa7170486475603d4756f2c23990b7668 inherit pub_methods_classcv_1_1structured__light_1_1StructuredLightPattern"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classcv_1_1Algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcv_1_1Algorithm')"><img alt="-" src="../../closed.png"/> Public Member Functions inherited from <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html">cv::Algorithm</a></td></tr>
<tr class="memitem:a827c8b2781ed17574805f373e6054ff1 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a827c8b2781ed17574805f373e6054ff1">Algorithm</a> ()</td></tr>
<tr class="separator:a827c8b2781ed17574805f373e6054ff1 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8ae826127fa0f1f8d10a24841bd376f8 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a8ae826127fa0f1f8d10a24841bd376f8">~Algorithm</a> ()</td></tr>
<tr class="separator:a8ae826127fa0f1f8d10a24841bd376f8 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aec9c965448e4dc851d7cacd3abd84cd1 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aec9c965448e4dc851d7cacd3abd84cd1">clear</a> ()</td></tr>
<tr class="memdesc:aec9c965448e4dc851d7cacd3abd84cd1 inherit pub_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Clears the algorithm state.  <a href="../../d3/d46/classcv_1_1Algorithm.html#aec9c965448e4dc851d7cacd3abd84cd1">More...</a><br/></td></tr>
<tr class="separator:aec9c965448e4dc851d7cacd3abd84cd1 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab6a18f1825475643e94381697d413972 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#ab6a18f1825475643e94381697d413972">empty</a> () const</td></tr>
<tr class="memdesc:ab6a18f1825475643e94381697d413972 inherit pub_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a> is empty (e.g. in the very beginning or after unsuccessful read.  <a href="../../d3/d46/classcv_1_1Algorithm.html#ab6a18f1825475643e94381697d413972">More...</a><br/></td></tr>
<tr class="separator:ab6a18f1825475643e94381697d413972 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a286fc82744ccab3d248aca44524266a9 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a286fc82744ccab3d248aca44524266a9">getDefaultName</a> () const</td></tr>
<tr class="separator:a286fc82744ccab3d248aca44524266a9 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef2ad3f4145bd6e8c3664eb1c4b5e1e6 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aef2ad3f4145bd6e8c3664eb1c4b5e1e6">read</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn)</td></tr>
<tr class="memdesc:aef2ad3f4145bd6e8c3664eb1c4b5e1e6 inherit pub_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Reads algorithm parameters from a file storage.  <a href="../../d3/d46/classcv_1_1Algorithm.html#aef2ad3f4145bd6e8c3664eb1c4b5e1e6">More...</a><br/></td></tr>
<tr class="separator:aef2ad3f4145bd6e8c3664eb1c4b5e1e6 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0a880744bc4e3f45711444571df47d67 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a0a880744bc4e3f45711444571df47d67">save</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;filename) const</td></tr>
<tr class="separator:a0a880744bc4e3f45711444571df47d67 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1f8ad7b8add515077367fb9949a174d2 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a1f8ad7b8add515077367fb9949a174d2">write</a> (<a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="memdesc:a1f8ad7b8add515077367fb9949a174d2 inherit pub_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Stores algorithm parameters in a file storage.  <a href="../../d3/d46/classcv_1_1Algorithm.html#a1f8ad7b8add515077367fb9949a174d2">More...</a><br/></td></tr>
<tr class="separator:a1f8ad7b8add515077367fb9949a174d2 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a763a62d1b03042eef7d7fc3ac6c87c79 inherit pub_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a763a62d1b03042eef7d7fc3ac6c87c79">write</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &gt; &amp;fs, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;name=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>()) const</td></tr>
<tr class="memdesc:a763a62d1b03042eef7d7fc3ac6c87c79 inherit pub_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  <a href="../../d3/d46/classcv_1_1Algorithm.html#a763a62d1b03042eef7d7fc3ac6c87c79">More...</a><br/></td></tr>
<tr class="separator:a763a62d1b03042eef7d7fc3ac6c87c79 inherit pub_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1f724251afc61fc2d6f7451721cb90fe"><td align="right" class="memItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html">GrayCodePattern</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#a1f724251afc61fc2d6f7451721cb90fe">create</a> (const <a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html">GrayCodePattern::Params</a> &amp;parameters=<a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html">GrayCodePattern::Params</a>())</td></tr>
<tr class="memdesc:a1f724251afc61fc2d6f7451721cb90fe"><td class="mdescLeft"> </td><td class="mdescRight">Constructor.  <a href="#a1f724251afc61fc2d6f7451721cb90fe">More...</a><br/></td></tr>
<tr class="separator:a1f724251afc61fc2d6f7451721cb90fe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5b46328443303203abae2d77902002be"><td align="right" class="memItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html">GrayCodePattern</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html#a5b46328443303203abae2d77902002be">create</a> (int width, int height)</td></tr>
<tr class="separator:a5b46328443303203abae2d77902002be"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_static_methods_classcv_1_1Algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classcv_1_1Algorithm')"><img alt="-" src="../../closed.png"/> Static Public Member Functions inherited from <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html">cv::Algorithm</a></td></tr>
<tr class="memitem:a623841c33b58ea9c4847da04607e067b inherit pub_static_methods_classcv_1_1Algorithm"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a623841c33b58ea9c4847da04607e067b inherit pub_static_methods_classcv_1_1Algorithm"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a623841c33b58ea9c4847da04607e067b">load</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;filename, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;objname=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>())</td></tr>
<tr class="memdesc:a623841c33b58ea9c4847da04607e067b inherit pub_static_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Loads algorithm from the file.  <a href="../../d3/d46/classcv_1_1Algorithm.html#a623841c33b58ea9c4847da04607e067b">More...</a><br/></td></tr>
<tr class="separator:a623841c33b58ea9c4847da04607e067b inherit pub_static_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3ba305a10d02479c13cf7d169c321547 inherit pub_static_methods_classcv_1_1Algorithm"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a3ba305a10d02479c13cf7d169c321547 inherit pub_static_methods_classcv_1_1Algorithm"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a3ba305a10d02479c13cf7d169c321547">loadFromString</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;strModel, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;objname=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>())</td></tr>
<tr class="memdesc:a3ba305a10d02479c13cf7d169c321547 inherit pub_static_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Loads algorithm from a String.  <a href="../../d3/d46/classcv_1_1Algorithm.html#a3ba305a10d02479c13cf7d169c321547">More...</a><br/></td></tr>
<tr class="separator:a3ba305a10d02479c13cf7d169c321547 inherit pub_static_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad8c591bacb34c485f5b7a250c314fc53 inherit pub_static_methods_classcv_1_1Algorithm"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:ad8c591bacb34c485f5b7a250c314fc53 inherit pub_static_methods_classcv_1_1Algorithm"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#ad8c591bacb34c485f5b7a250c314fc53">read</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn)</td></tr>
<tr class="memdesc:ad8c591bacb34c485f5b7a250c314fc53 inherit pub_static_methods_classcv_1_1Algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Reads algorithm from the file node.  <a href="../../d3/d46/classcv_1_1Algorithm.html#ad8c591bacb34c485f5b7a250c314fc53">More...</a><br/></td></tr>
<tr class="separator:ad8c591bacb34c485f5b7a250c314fc53 inherit pub_static_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classcv_1_1Algorithm"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classcv_1_1Algorithm')"><img alt="-" src="../../closed.png"/> Protected Member Functions inherited from <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html">cv::Algorithm</a></td></tr>
<tr class="memitem:a68eeca71617474ad3d4561786f0289d2 inherit pro_methods_classcv_1_1Algorithm"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a68eeca71617474ad3d4561786f0289d2">writeFormat</a> (<a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="separator:a68eeca71617474ad3d4561786f0289d2 inherit pro_methods_classcv_1_1Algorithm"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class implementing the Gray-code pattern, based on <a class="el" href="../../d0/de3/citelist.html#CITEREF_UNDERWORLD">[109]</a>. </p>
<p>The generation of the pattern images is performed with Gray encoding using the traditional white and black colors.</p>
<p>The information about the two image axes x, y is encoded separately into two different pattern sequences. A projector P with resolution (P_res_x, P_res_y) will result in Ncols = log 2 (P_res_x) encoded pattern images representing the columns, and in Nrows = log 2 (P_res_y) encoded pattern images representing the rows. For example a projector with resolution 1024x768 will result in Ncols = 10 and Nrows = 10.</p>
<p>However, the generated pattern sequence consists of both regular color and color-inverted images: inverted pattern images are images with the same structure as the original but with inverted colors. This provides an effective method for easily determining the intensity value of each pixel when it is lit (highest value) and when it is not lit (lowest value). So for a a projector with resolution 1024x768, the number of pattern images will be Ncols * 2 + Nrows * 2 = 40. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1f724251afc61fc2d6f7451721cb90fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f724251afc61fc2d6f7451721cb90fe">◆ </a></span>create() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html">GrayCodePattern</a>&gt; cv::structured_light::GrayCodePattern::create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html">GrayCodePattern::Params</a> &amp; </td>
          <td class="paramname"><em>parameters</em> = <code><a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html">GrayCodePattern::Params</a>()</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.structured_light.GrayCodePattern_create(</td><td class="paramname">width, height</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parameters</td><td><a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html" title="Class implementing the Gray-code pattern, based on . ">GrayCodePattern</a> parameters <a class="el" href="../../d3/d4d/structcv_1_1structured__light_1_1GrayCodePattern_1_1Params.html" title="Parameters of StructuredLightPattern constructor. ">GrayCodePattern::Params</a>: the width and the height of the projector. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a5b46328443303203abae2d77902002be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b46328443303203abae2d77902002be">◆ </a></span>create() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d1/dec/classcv_1_1structured__light_1_1GrayCodePattern.html">GrayCodePattern</a>&gt; cv::structured_light::GrayCodePattern::create </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>height</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.structured_light.GrayCodePattern_create(</td><td class="paramname">width, height</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ae67bd95cfab3a78721d978f6ba0fd3f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae67bd95cfab3a78721d978f6ba0fd3f3">◆ </a></span>getImagesForShadowMasks()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::structured_light::GrayCodePattern::getImagesForShadowMasks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#gaf77c9a14ef956c50c1efd4547f444e63">InputOutputArray</a> </td>
          <td class="paramname"><em>blackImage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#gaf77c9a14ef956c50c1efd4547f444e63">InputOutputArray</a> </td>
          <td class="paramname"><em>whiteImage</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>blackImage, whiteImage</td><td>=</td><td>cv.structured_light_GrayCodePattern.getImagesForShadowMasks(</td><td class="paramname">blackImage, whiteImage</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Generates the all-black and all-white images needed for shadowMasks computation. </p>
<p>To identify shadow regions, the regions of two images where the pixels are not lit by projector's light and thus where there is not coded information, the 3DUNDERWORLD algorithm computes a shadow mask for the two cameras views, starting from a white and a black images captured by each camera. This method generates these two additional images to project.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blackImage</td><td>The generated all-black CV_8U image, at projector's resolution. </td></tr>
    <tr><td class="paramname">whiteImage</td><td>The generated all-white CV_8U image, at projector's resolution. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a86f48b2b4d4395f4064481ec3181da45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86f48b2b4d4395f4064481ec3181da45">◆ </a></span>getNumberOfPatternImages()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.structured_light_GrayCodePattern.getNumberOfPatternImages(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get the number of pattern images needed for the graycode pattern. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of pattern images needed for the graycode pattern. </dd></dl>
</div>
</div>
<a id="a098c1e42780d2212476c61d1e803bb06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a098c1e42780d2212476c61d1e803bb06">◆ </a></span>getProjPixel()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool cv::structured_light::GrayCodePattern::getProjPixel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga606feabe3b50ab6838f1ba89727aa07a">InputArrayOfArrays</a> </td>
          <td class="paramname"><em>patternImages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga1e83eafb2d26b3c93f09e8338bcab192">Point</a> &amp; </td>
          <td class="paramname"><em>projPix</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, projPix</td><td>=</td><td>cv.structured_light_GrayCodePattern.getProjPixel(</td><td class="paramname">patternImages, x, y</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>For a (x,y) pixel of a camera returns the corresponding projector pixel. </p>
<p>The function decodes each pixel in the pattern images acquired by a camera into their corresponding decimal numbers representing the projector's column and row, providing a mapping between camera's and projector's pixel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">patternImages</td><td>The pattern images acquired by the camera, stored in a grayscale vector &lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> &gt;. </td></tr>
    <tr><td class="paramname">x</td><td>x coordinate of the image pixel. </td></tr>
    <tr><td class="paramname">y</td><td>y coordinate of the image pixel. </td></tr>
    <tr><td class="paramname">projPix</td><td>Projector's pixel corresponding to the camera's pixel: projPix.x and projPix.y are the image coordinates of the projector's pixel corresponding to the pixel being decoded in a camera. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a3607cba801a696881df31bbd6c59c4fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3607cba801a696881df31bbd6c59c4fd">◆ </a></span>setBlackThreshold()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::structured_light::GrayCodePattern::setBlackThreshold </td>
          <td>(</td>
          <td class="paramtype">size_t </td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.structured_light_GrayCodePattern.setBlackThreshold(</td><td class="paramname">value</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Sets the value for black threshold, needed for decoding (shadowsmasks computation). </p>
<p>Black threshold is a number between 0-255 that represents the minimum brightness difference required for valid pixels, between the fully illuminated (white) and the not illuminated images (black); used in computeShadowMasks method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>The desired black threshold value. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="aeaf08cd487c5d2894eda4ebd1eea6322"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaf08cd487c5d2894eda4ebd1eea6322">◆ </a></span>setWhiteThreshold()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::structured_light::GrayCodePattern::setWhiteThreshold </td>
          <td>(</td>
          <td class="paramtype">size_t </td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.structured_light_GrayCodePattern.setWhiteThreshold(</td><td class="paramname">value</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Sets the value for white threshold, needed for decoding. </p>
<p>White threshold is a number between 0-255 that represents the minimum brightness difference required for valid pixels, between the graycode pattern and its inverse images; used in getProjPixel method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>The desired white threshold value. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/structured_light/<a class="el" href="../../d7/d9c/graycodepattern_8hpp.html">graycodepattern.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:48 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
